// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Пин Ап Казино – играть в онлайн Pin Up Casino – официальный сайт – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Пин Ап Казино – играть в онлайн Pin Up Casino – официальный сайт

В современном мире игроки имеют доступ к огромному количеству онлайн-казино, но не все из них могут похваться высоким уровнем безопасности и качества услуг. Pin Up Casino – это пример успешной онлайн-игровой платформы, которая сумела завоевать доверие игроков из всего мира.

Pin Up Casino – это международная онлайн-игровая платформа, которая была основана в 2016 году. Компания имеет лицензию на проведение игорного бизнеса, выдана в Куртрахе, Мальте. Это означает, что игроки могут быть уверены в безопасности своих данных и средств.

Pin Up Casino предлагает игрокам широкий спектр игр, включая слоты, карточные игры, рулетку, бинго и другие. Все игры на платформе имеют лицензии на использование и являются безопасными для игроков.

Один из ключевых факторов успеха Pin Up Casino – это его мобильная версия. Игроки могут играть в любое время и из любого места, где есть доступ к интернету. Мобильная версия платформы имеет тот же уровень безопасности, что и ее десктопная версия.

Pin Up Casino предлагает игрокам несколько способов оплаты, включая банковские карты, электронные деньги и другие. Компания обеспечивает безопасность транзакций и обеспечивает быстрый доступ к средствам.

Pin Up Casino – это пример того, как можно создать успешную онлайн-игровую платформу, которая обеспечивает безопасность и качество услуг для игроков. Если вы ищете надежный и безопасный способ играть в онлайн-казино, то Pin Up Casino – это ваш выбор.

Pin Up Casino – это официальный сайт, который предлагает игрокам широкий спектр игр и услуг.

Pin Up Casino – это пример того, как можно создать успешную онлайн-игровую платформу, которая обеспечивает безопасность и качество услуг для игроков.

Пин Ап Казино – играть в онлайн Pin Up Casino – официальный сайт

Преимущества игры в Pin Up Casino

Один из главных преимуществ игры в Pin Up Casino – это официальный статус. Это означает, что игроки могут быть уверены в безопасности своих данных и средств. Кроме того, Pin Up Casino предлагает игрокам широкий спектр игр, включая слоты, карточные игры и игры с долями. Игроки могут выбрать игру, которая лучше всего подходит им.

Бонусы и акции

Pin Up Casino предлагает игрокам различные бонусы и акции, которые могут помочь им начать игру с преимуществом. Например, новый игрок может получить бонус в 50 000 рублей, чтобы начать игру. Кроме того, Pin Up Casino предлагает игрокам регулярные бонусы и акции, которые могут помочь им увеличить свой банк.

Удобство и доступность

Pin Up Casino предлагает игрокам удобство и доступность. Игроки могут играть в любое время и из любого места, где есть доступ к интернету. Кроме того, Pin Up Casino предлагает игрокам мобильную версию сайта, чтобы они могли играть на своих мобильных устройствах.

В целом, Pin Up Casino – это отличный выбор для игроков, которые ищут официальное онлайн-казино, которое предлагает игрокам широкий спектр игр и услуг. Игроки могут быть уверены в безопасности своих данных и средств, и они могут насладиться игрой в любое время и из любого места.

Pin Up Casino – Play online at the official website

Pin Up Casino – это популярный онлайн-казино, которое предлагает игрокам широкий спектр развлекательных игр, включая слоты, карточные игры, рулетку и другие. В Pin Up Casino игроки могут играть на официальном сайте, который доступен для игроков из многих стран мира.

Why choose Pin Up Casino?

Pin Up Casino – это отличный выбор для игроков, которые ищут надежный и безопасный способ играть в онлайн-казино. Мы предлагаем игрокам широкий спектр преимуществ, включая:

Бесплатные бонусы и спецпромоции

Высокие ставки и выигрыши

Удобный и безопасный способ оплаты

24/7 поддержка клиентов

Широкий спектр игр, включая слоты, карточные игры, рулетку и другие

How to play at Pin Up Casino?

Играть в Pin Up Casino – это легко! Для начала, вам нужно зарегистрироваться на официальном сайте Pin Up Casino, указав свои личные данные и выбрав валюту. Затем, вы можете выбрать игру, которая вам понравилась, и начать играть. Мы предлагаем игрокам широкий спектр способов оплаты, включая кредитные карты, электронные деньги и другие.

В Pin Up Casino мы предлагаем игрокам широкий спектр преимуществ, чтобы они могли насладиться игрой и выиграть деньги. Мы обеспечиваем безопасность и конфиденциальность игроков, используя современные технологии и системы безопасности.

Почему выбрать Pin Up Casino?

Pin Up Casino – это лучший выбор для игроков, ищущих онлайн-казино, которое предлагает широкий спектр игр, безопасность и надежность. В Pin Up Casino вы можете играть в более 3 000 игр, включая слоты, карточные игры, рулетку и другие. Наш онлайн-казино предлагает игрокам возможность играть на деньги или бесплатно, что позволяет выбрать оптимальный способ для вас.

Преимущества Pin Up Casino

Большой выбор игр: у нас есть более 3 000 игр, включая слоты, карточные игры, рулетку и другие.

Безопасность и надежность: наша платформа защищена от хакеров и обеспечивает безопасность вашего счета.

Многоязычный интерфейс: наша платформа доступна на русском, английском, немецком, французском и других языках.

Много способов оплаты: у нас пин ап есть множество способов оплаты, включая банковские карты, электронные деньги и другие.

24/7 поддержка: наша команда поддержки работает круглосуточно, чтобы помочь вам в любое время.

Pin Up Casino – это лучший выбор для игроков, ищущих онлайн-казино, которое предлагает широкий спектр игр, безопасность и надежность. Мы уверены, что вы найдете что-то для себя в нашем онлайн-казино.

How to start playing at Pin Up Casino?

Pin Up Casino is a popular online gaming platform that offers a wide range of games, including slots, table games, and live dealer games. If you’re new to the platform, starting to play can seem overwhelming, but don’t worry, we’re here to guide you through the process.

Step 1: Sign Up

The first step is to sign up for a Pin Up Casino account. To do this, simply click on the “Register” button on the Pin Up Casino website and fill out the registration form with your personal details. Make sure to choose a strong password and confirm your email address.

  • Fill out the registration form with your personal details.
  • Choose a strong password.
  • Confirm your email address.

Step 2: Make a Deposit

Once you’ve signed up, you’ll need to make a deposit to fund your account. Pin Up Casino offers a range of payment options, including credit cards, e-wallets, and bank transfers. Choose the payment method that’s most convenient for you and follow the instructions to complete the deposit.

  • Choose your payment method.
  • Enter the amount you want to deposit.
  • Confirm your deposit.
  • Pin Up Casino offers a range of bonuses and promotions to help you get started. These can include welcome bonuses, free spins, and other rewards. Be sure to check the Pin Up Casino website for the latest offers and promotions.

    Step 3: Choose Your Game

    With your account funded and your deposit confirmed, it’s time to start playing. Pin Up Casino offers a wide range of games, including slots, table games, and live dealer games. Browse the game selection and choose the game that’s right for you.

    • Slots: Pin Up Casino offers a wide range of slots, including classic slots, video slots, and progressive slots.
    • Table Games: Pin Up Casino offers a range of table games, including blackjack, roulette, and baccarat.
    • Live Dealer Games: Pin Up Casino offers a range of live dealer games, including live blackjack, live roulette, and live baccarat.

    That’s it! With these simple steps, you can start playing at Pin Up Casino. Remember to always gamble responsibly and within your means. Good luck, and have fun!

    Design and Develop by Ovatheme